In [1]:
def mayor_o_menor(x, y):
if x < y:
print(x, "es menor que", y)
elif x > y:
print(x, "es mayor que", y)
else:
print(x, "y", y, "son iguales")
Al aplicar esta función a distintos números obtenemos:
In [2]:
mayor_o_menor(2, 5)
In [3]:
mayor_o_menor(100, 10)
In [5]:
mayor_o_menor('a', 1)
Algunos de los operadores con los que se pueden hacer comparaciones al momento de usar en if
son:
Operador | Resultado |
---|---|
== | Igualdad |
!= | No es igual |
< | Menor que |
> | Mayor que |
<= | Menor o igual |
>= | Mayor o igual |
not | Niega una condición |
in | Verifica si un elemento está en una lista |
and | Verifica si dos condiciones se cumplen |
or | Verifica si se cumple al menos una condición |
is | Verifica si un objeto es igual a otro |
A excepción de in
y not
, todos los demás operadores son similares a los usados en otros lenguajes de programación, por lo que no vamos a mirar ejemplos de ellos. Veamos, por tanto, sólo como funcionan los primeros:
In [6]:
3 in [1, 2, 4]
Out[6]:
In [7]:
3 in [1, 2, 3]
Out[7]:
In [8]:
not (2 == 5)
Out[8]:
A través de estos ejemplos también podemos notar que los valores de verdad en Python se escriben como True
y False
para verdadero y falso, respectivamente.
In [ ]:
# Escribir la solución aquí
Definir una función es_divisible_entre_siete(x)
que imprima si un número es o no es divisible entre 7. La función debe imprimir resultados como los siguientes:
es_divisible_entre_siete(12)
'12 no es divisible entre 7'
es_divisible_entre_siete(14)
'14 es divisible entre 7'
es_divisible_entre_siete(32)
'32 no es divisible entre 7'
es_divisible_entre_siete(21)
'21 es divisible entre 7'
Nota:
Utilizar el operador módulo (%
) para decidir si un número es múltiplo de otro. Este operador retorna el residuo de la división entre dos números. Por tanto, si un número divide exactamente a otro, retorna 0
, sino retorna cualquier otro número. Veamos algunos ejemplos:
12%4
0
12%6
0
12%5
2
25%5
0
25%6
1
In [ ]:
# Escribir la solución aquí
Generalizar la función anterior como una nueva función llamada es_divisible_entre_n(x, n)
que tome dos números enteros e imprima si el primero es divisible entre el segundo, así: (Tomado de Aprenda a pensar como un programador con Python)
es_divisible_entre_n(20, 4)
'20 es divisible entre 4'
es_divisible_entre_n(36, 5)
'36 no es divisible entre 5'
Definir una función agregar_nuevo(li, x)
que reciba una lista y un elemento, y retorne una nueva lista en la que esté añadido el elemento, pero sólo si éste no hace parte de la lista original (Tomado de Introducción a Mathematica del Prof. Jurgen Tischer).
Por ejemplo, algunos resultados de esta función son:
agregar_nuevo([3,9,6], 11)
[3, 9, 6, 11]
agregar_nuevo([3,9,6], 9)
[3, 9, 6]
En Python for
se utiliza para moverse (o iterar) entre los elementos de una secuencia de datos. Su sintaxis es más sencilla que la usada en C o C++, porque en lugar de utilizar un contador cuyo valor va aumentando o disminuyendo durante el ciclo, se toma una secuencia completa (i.e. una lista, una tupla, o una cadena), y se recorren sus elementos en el orden en que aparecen en ella.
Observemos algunos ejemplos:
In [ ]:
for x in [3, 9, 12, 4]:
print(x)
In [ ]:
prefijos = "JKLMNOPQ"
sufijo = "ack"
for letra in prefijos:
print(letra + sufijo)
In [ ]:
for i in range(10):
print(i**2)
range
es un comando que se utiliza muy a menudo junto a los ciclos for
, pues sirve para generar una lista con todos los números desde 0 hasta cierto valor. También puede usarse con dos valores, uno como límite inferior y el otro como límite superior, así:
Nota:
En Python 3 range
genera un objeto de tipo range
en lugar de una lista, por razones de eficiencia. Por ello hay que convertirlo a una lista para observar lo que contiene.
In [ ]:
list(range(10))
range
no sólo acepta un único argumento. Al evaluarlo con dos argumentos, genera una lista desde el valor inicial, hasta uno antes del valor final
In [ ]:
list(range(1, 20))
Y con un tercer argumento, range
genera una lista con valores espaciados según el tercer argumento
In [ ]:
list(range(7, 25, 3))
Dado que no es fácil recordar como funciona range
, su ayuda puede consultarse interactivamente al evaluar su nombre, seguido de ?
, así:
In [ ]:
range?
In [ ]:
# Escribir la solución aquí
Finalmente vamos a mirar la sintaxis del comando while
, que si bien no es tan usado como los dos anteriores, es muy útil porque permite recorrer los elementos de una lista, tupla o cadena por medio de su índice. Esto es algo que no puede hacerse con mucha naturalidad con for
, que está ideado para recorrer los elementos directamente, sin tener que preocuparse por sus posiciones.
Además, con while
no es necesario definir un límite superior para realizar un ciclo, como si hay que hacerlo con for
.
Miremos un par de ejemplos:
(1) En este primer ejemplo, imprimimos la lista de todos los elementos de una lista li
, pero seleccionándolos de li
por medio de su índice.
In [ ]:
li = [3, 6, 9, 11]
i = 0
while i < 4:
print(li[i])
i += 1
(2) En este ejemplo vamos a imprimir los 20 primeros números que son divisibles entre 4.
In [ ]:
def es_divisible_entre_n(x, n):
if (x%n) == 0:
return True
else:
return False
i = 1
j = 1
while i <= 20:
if es_divisible_entre_n(j, 4):
print(i,j)
i += 1
j += 1
En este caso vemos cómo usar dos contadores en el ciclo, uno (i
) para poder detenerlo cuando se haya obtenido el veinteavo número divisible entre 4, y otro (j
) para movernos entre los números mayores a 1
y revisar cuáles de ellos son divisibles entre 4.
In [ ]:
# Escribir la solución aquí
In [ ]:
# Escribir la solución aquí
Usar la función digitos
, definida en el Problema 3. de la sección anterior, para encontrar el primer número de 4 cifras que sea divisible entre 8 y cuya primera y última cifras sean iguales.
Respuesta:
2032
Nota:
Definir dos contadores: uno que empiece en 1000
para ir revisando todos los números de 4 cifras, y otro para detener el ciclo while
tan pronto se encuentre el primer número que cumpla la condición deseada.
In [ ]:
# Escribir la solución aquí
El material de este notebook fue recopilado para Clubes de Ciencia Colombia 2017 por Luis Henry Quiroga (GitHub: lhquirogan) - Germán Chaparro (GitHub: saint-germain), y fue adaptado de https://github.com/PythonBootcampUniandes